\section{loadtask}

在运行中加载一个Tenon可执行文件并运行。

\subsection*{原型}
\begin{verbatim}
bool loadtask(string name, string bin, bool bpOnEntry = true,
              string& libs[*] = void, num& taskid = void)
\end{verbatim}

\subsubsection*{name}
要加载的任务的Tenon可执行文件的名称。

\subsubsection*{bin}
要加载的任务的Tenon可执行文件的路径。

\subsubsection*{bpOnEntry}
是否在要加载的任务入口处设置调试断点。

\subsubsection*{libs}
要加载的任务运行时使用的导入库的列表。每个导入库只使用其名称即可。

\subsubsection*{taskid}

使用此参数接收任务加载成功后，任务的一个标识符，用于区别任务。
可用于之后使用unloadtask卸载任务时的参数。 

\subsubsection*{返回值}
bool类型。任务加载成功并开始运行，返回true；否则返回false。

\subsection*{例子}
\begin{verbatim}
// 编译为loadtask_1.tbin
module mod1 {
    void main() {
        print("hello from mod1\n");
    }
}

//编译为loadtask_2.tbin
module mod2 {
    void main() {
        bool ret;
        print("hello from mod2\n");
        ret = loadtask("task_1", "loadtask_1.tbin");
        waittime(1);
        print("res: %b\n", ret);
    }
}
\end{verbatim}

\section{shared\_num\_add}

将共享变量加上一个数值。shared\_num\_*类的函数的执行是原子性的，即不同任务间的执行是互斥的。

\subsection*{原型}
\begin{verbatim}
num shared_num_add(num& sv, num d)
\end{verbatim}

\subsubsection*{sv}
共享变量，要修改的变量。

\subsubsection*{d}
将该数值加到共享变量上。

\subsubsection*{返回值}
num类型。返回函数执行成功后，所操作的共享变量的新的值。

\subsection*{例子}
\begin{verbatim}
module test {
    shared num svn;
    void main() {
        shared_num_add(svn, 1.0);
    }
}
\end{verbatim}

\section{shared\_num\_div}

将共享变量除以一个数值。

\subsection*{原型}
\begin{verbatim}
num shared_num_div(num& sv, num d)
\end{verbatim}

\subsubsection*{sv}
共享变量，要修改的变量。

\subsubsection*{d}
num类型，将共享变量sv除以d。

\subsubsection*{返回值}
num类型。返回函数执行成功后，所操作的共享变量的新的值。

\subsection*{例子}
\begin{verbatim}
module test {
    shared num svn;
    void main() {
        shared_num_div(svn, 3.0);
    }
}
\end{verbatim}

\section{shared\_num\_mul}

将共享变量乘上一个数值。

\subsection*{原型}
\begin{verbatim}
num shared_num_mul(num& sv, num d)
\end{verbatim}

\subsubsection*{sv}
共享变量，要修改的变量。

\subsubsection*{d}
将共享变量sv乘上d。

\subsubsection*{返回值}
num类型。返回函数执行成功后，所操作的共享变量的新的值。

\subsection*{例子}
\begin{verbatim}
module test {
    shared num svn;
    void main() {
        shared_num_mul(svn, 2.0);
    }
}
\end{verbatim}

\section{shared\_num\_read}

读取共享变量的值。

\subsection*{原型}
\begin{verbatim}
num shared_num_read(num& sv)
\end{verbatim}

\subsubsection*{sv}
共享变量，要读取的变量。

\subsubsection*{返回值}
该共享变量的值。

\subsection*{例子}
\begin{verbatim}
module test {
    shared num svn;
    void main() {
	    num x;
        x = shared_num_read(svn);
    }
}
\end{verbatim}

\section{shared\_num\_sub}

将共享变量减去一个数值。

\subsection*{原型}
\begin{verbatim}
num shared_num_sub(num& sv, num d)
\end{verbatim}

\subsubsection*{sv}
共享变量，要修改的变量。

\subsubsection*{d}
将共享变量sv减去d。

\subsubsection*{返回值}
num类型。返回函数执行成功后，所操作的共享变量的新的值。

\subsection*{例子}
\begin{verbatim}
module test {
    shared num svn;
    void main() {
        shared_num_sub(svn, 1.0);
    }
}
\end{verbatim}

\section{shared\_num\_write}

将一个数值写入一个共享变量。

\subsection*{原型}
\begin{verbatim}
void shared_num_write(num& sv, num d)
\end{verbatim}

\subsubsection*{sv}
共享变量，要修改的变量。

\subsubsection*{d}
将该数值写入共享变量sv。

\subsection*{例子}
\begin{verbatim}
module test {
    shared num svn;
    void main() {
        shared_num_write(svn, 1.0);
    }
}
\end{verbatim}

\section{unloadtask}

卸载一个通过loadtask加载的任务。

\subsection*{原型}
\begin{verbatim}
bool unloadtask(num taskid)
\end{verbatim}

\subsubsection*{taskid}
要卸载的任务的标识符，即loadtask时传入的taskid变量的值。

\subsubsection*{返回值}
bool类型。任务卸载成功并开始运行，返回true；否则返回false。

\subsection*{例子}

无。
